The present invention relates in general to the fields of computer graphics and computer animation, and more particularly to methods and systems for authoring and rendering animated creatures, e.g., in the context of interactive applications such as 3D video games and virtual environments. Although the detailed description of the invention set forth herein refers to the creation of animated human figures, the invention is by no means limited thereto.
Creating believable animated human figures proves difficult, even with the most sophisticated software available. Once an acceptable animation segment has been created, either by an animator or through motion-capture, the results remain difficult to reuse. The additional work needed to modify the animation may take almost as much time as the time required to create the original motion. Furthermore, the exact style or structure needed for a particular motion may not be known until runtime. Interactive applications, such as a 3D video game or a virtual environment require an animation system that permits the animated figures to be controlled by a user in real time.
Research into controllable human figure animation divides into three major groupings: procedural, simulated, and interpolated. Procedural animation uses code fragments to derive the degrees of freedom (DOF) values at a particular time. The procedures can be as sophisticated as needed to provide different motion styles or react to different conditions of the simulated environment.
Dynamically simulated figure animation uses controllers together with a simulated human to generate motion. The degree to which this method succeeds relies on how accurately the human motion is understood and modeled. Unfortunately, both procedural and dynamic methods can alienate classically trained animators and use motion-capture technology ineffectively. This proves important since animators and motion-capture systems each produce compelling results. To leverage their qualities, a system should use what these resources provide.
The third major grouping, interpolated animation, uses sets of motion examples with an interpolation scheme to construct new motions. The primary problems to solve with this approach are to provide a set of meaningful, high-level control knobs to the animator or runtime system, to maintain the aesthetic of the source motions in the interpolated motions, and to extrapolate motion. Additionally, motion interpolation must be efficient for use in a runtime environment.
The idea of altering existing animation to produce different characteristics is not new. Unuma et al., Fourier Principles For Emotion-Based Human Figure Animation, Computer Graphics (Proc. Siggraph 95), ACM Press, New York, August 1995, pp. 91-96, use Fourier techniques to interpolate and extrapolate motion data. Amaya et al., Emotion From Motion, Graphics Interface 96, San Francisco, May 1996, pp. 222-229, alter existing animation by extracting an xe2x80x9cemotional transformxe2x80x9d from motion examples, which they then apply to other motions. For example, xe2x80x9cangerxe2x80x9d from an angry walk can be applied to a run to generate an xe2x80x9cangryxe2x80x9d run.
Bruderlin and Williams, Motion Signal Processing, Computer Graphics (Proc. Siggraph 95), ACM Press, New York, August 1995, pp. 97-104, use multi-target interpolation with dynamic time warping to blend between motions and displacement mappings to alter motions such as grasps. Witkin and Popovic, Motion Warping, Computer Graphics (Proc. Siggraph 95), ACM Press, New York, August 1995, pp. 105-108, have a similar system for editing motion-capture clips. Perlin, Real-Time Responsive Animation With Personality, IEEE Trans on Visualization and Computer Graphics, 1, 1, March 1995, pp. 5-15, approaches this problem in a very different way by using noise functions to simulate personality and emotion in existing animation.
Both Wiley and Hahn, Interpolation Synthesis For Articulated Figure Motion, Proc. Virtual Reality Annual Int""l Symp., IEEE CS Press, March 1997, pp. 157-160, and Guo and Roberge, xe2x80x9cA High-Level Control Mechanism For Human Locomotion Based On Parametric Frame Space Interpolation, Proc. Computer Animation and Simulation 96, Eurographics Animation Workshop, New York, August 1996, pp. 95-107, produce new motions using linear interpolation on a set of motion examples. Both techniques require O(2d) examples, where d is the dimensionality of the control space and O represents the Order function. In general, techniques which require O(2d) examples or which run in O(2d) time are not practical. This is well known in the field of computer science.
Wiley and Hahn""s time scaling is uniform. While uniform time scaling obviates the need for an animator to select structurally similar poses during motions, it assumes that the motions being interpolated are very similar in time. When this assumption is violated, oddities in the motion can result. Wiley and Hahn also reparameterize and sample their motions on a multi-dimensional grid. Simple interpolations are then performed at runtime. This requires computation and storage exponential in the number of parameters, i.e., O(2d).
Additionally, neither Wiley and Hahn nor Guo and Roberge discuss blending subsets of examples, which would arise when a designer places new examples xe2x80x9cbetweenxe2x80x9d old examples when refining the interpolated motion space.
Hodgins and Pollard, Adapting Simulated Behaviors For New Characters, Computer Graphics (Proc. Siggraph 97), ACM Press, New York, August 1997, pp. 153-162, interpolate over the space of control laws as opposed to joint trajectories. The control functions define the gains in the joints within a physical dynamics framework. By interpolating the control for an action such as running, they can alter a figure""s physical characteristics from a child to an adult or from a male to a female character.
Accordingly, there is a need for improved animation authoring and rendering systems for providing animated objects that a user can manipulate in real time.
The present invention is directed to systems and methods that address the problem of providing improved (faster for a given amount of computer resources) computer animation, and can be used in interactive applications such as 3D video games and virtual environments.
Systems and methods are described for interpolating predefined animation segments, or motion examples, which may be created by an animator or through motion capture video. The invention performs multi-dimensional interpolation between multiple examples, and works in the time domain, thus providing interpolation of non-periodic as well as periodic examples. Radial basis functions (e.g., cubic B-spline functions) are preferably used for the multi-dimensional interpolation because they are efficient enough for use in a runtime environment in which high level control knobs are employed to control the animation.
According to the invention, xe2x80x9cverbsxe2x80x9d are defined as motions parameterized by xe2x80x9cadverbsxe2x80x9d. The adverbs relate, e.g., to the mood, goal or physical characteristics attributable to the motion. For example, the verb xe2x80x9cwalkxe2x80x9d may be defined for an animation segment depicting the walking motion of a creature or animated object (e.g., a model of a person). The adverbs xe2x80x9chappy/sadxe2x80x9d, xe2x80x9cknowledgeable/cluelessxe2x80x9d, xe2x80x9cleft/rightxe2x80x9d and xe2x80x9cup hill/down hillxe2x80x9d may be defined to parameterize different example segments of the xe2x80x9cwalkxe2x80x9d verb. In other words, one could create animation segments of a person walking on a level plane, walking up hill, and walking down hill, for example. One could further create segments of a xe2x80x9chappyxe2x80x9d person walking and a xe2x80x9csadxe2x80x9d person walking, and a xe2x80x9cknowledgeablexe2x80x9d person walking and a xe2x80x9ccluelessxe2x80x9d person walking. The animation segments would be made up of data representing selected points on the animated object (e.g., the joints and extremities) and values, as a function of time, for each degree of freedom of those points.
Thus, by creating parameterized motions, i.e., xe2x80x9cverbsxe2x80x9d parameterized by xe2x80x9cadverbsxe2x80x9d, a single authored verb produces a continuous range of subtle variations of a given motion at real-time rates. As a result, simulated figures alter their actions based on their momentary mood or in response to changes in their goals or environmental stimuli. For example, a xe2x80x9cwalkxe2x80x9d verb is demonstrated that can show emotions such as happiness and sadness, together with subtle variations due to walking up or down hill while turning to the left and right.
A xe2x80x9cverb graphxe2x80x9d is constructed to act as the glue to assemble verbs and their adverbs into a runtime data structure. The verb graph provides the means for seamless transition from verb to verb within an interactive runtime system. In other words, the verb graph defines the allowable transitions from one verb (such as walking) to another verb (such as sitting). Additionally, the verb graph structures the overall flow of an animation, ensuring that actions logically follow one another as envisioned by the designer.
The invention may be implemented in a two-part system comprising (1) an offline authoring system with tools for constructing controllable verbs from sets of motion example segments, and for constructing transitions between different verbs; and (2) a runtime system for controlling the invocation of the verbs as parameterized by user defined adverbs. Additionally, a set of xe2x80x9ckeytimesxe2x80x9d may be defined. Keytimes are instances when important structural events, such as a foot down, occur. According to a preferred implementation of the invention, these keytimes are used to pre-process the motion examples into a synchronized (canonical or normalized) time frame for interpolation. The keytimes ensure that the motion examples have the same overall duration and the same duration between physically significant events (such as foot down), so that the interpolation between two example points makes physical sense.
The foregoing and other aspects of the present invention will become apparent from the following detailed description of the invention when considered in conjunction with the accompanying drawings.